﻿Imports CSLARecursos.Negocio.Enumeraciones

Namespace Editables

    Public Class Cliente

        Public Event CambiaPropiedadApellidos(ByVal objeto As Cliente)
        Public Event CambiaPropiedadGenero()

        'Constructor
        Public Sub New(ByVal nombre As String)
            _nombres = nombre
        End Sub

        Public Sub New(ByVal nombre As String, ByVal apellido As String)
            _nombres = nombre
            _apellidos = apellido
            _sexo = Genero.Masculino
        End Sub

        Private _nombres As String
        Public Property Nombres() As String
            Get
                Return _nombres
            End Get
            Set(ByVal value As String)
                _nombres = value
            End Set
        End Property


        Private _apellidos As String
        Public Property Apellidos() As String
            Get
                Return _apellidos
            End Get
            Set(ByVal value As String)
                _apellidos = value
                RaiseEvent CambiaPropiedadApellidos(Me)
            End Set
        End Property


        Private _dni As String
        Public Property DNI() As String
            Get
                Return _dni
            End Get
            Set(ByVal value As String)
                _dni = value
            End Set
        End Property


        Private _sexo As Genero
        Public Property Sexo() As Genero
            Get
                Return _sexo
            End Get
            Set(ByVal value As Genero)
                _sexo = value
                RaiseEvent CambiaPropiedadGenero()
            End Set
        End Property
        'La palabra overrides permite sobreescribir el comportamiento 
        ' de las funciones o métodos de las clases base

        Public Overrides Function ToString() As String
            Return String.Format("Nombres: {0}, Apellidos: {1}, Sexo: {2}", Nombres, Apellidos, Sexo)
        End Function



    End Class



End Namespace

